export function dataToTree(arr) {
  // return [{
  //   name: '一级 1',
  //   children: [{
  //     name: '二级 1-1',
  //     children: [{
  //       name: '三级 1-1-1'
  //     }]
  //   }]
  // }]
  // 1，找到一级父母
  const parent = arr.filter(item => item.pid === 0)
  // 2，找到一级父母的孩子
  parent.forEach(item => {
    findChildren(item)
  })
  // findChildren 的作用：传一个父母进来，帮这个父母找到所有的孩子
  function findChildren(parent) {
    // 先在父母身上添加一个children属性，准备接收孩子
    parent.children = []
    // 遍历原数组，从原数组中找孩子
    arr.forEach(item => {
      // eslint-disable-next-line no-cond-assign
      if (parent.id === item.pid) {
        // 找到孩子了！！！ item是parent的孩子
        // 1. 先把item这个孩子push进去
        parent.children.push(item)
        // 2. 再帮item这个孩子找它的孩子
        findChildren(item)
      }
    })
  }

  // parent.forEach(item1 => {
  //   item1.children = []
  //   arr.forEach(item2 => {
  //     // eslint-disable-next-line no-cond-assign
  //     if (item1.id === item2.pid) {
  //       item1.children.push(item2)
  //       // console.log(item2)
  //       item2.children = []
  //       arr.forEach(item3 => {
  //         // eslint-disable-next-line no-cond-assign
  //         if (item2.id === item3.pid) {
  //           item2.children.push(item3)
  //         }
  //       })
  //     }
  //   })
  // })
  // console.log(parent1)
  return parent
}
export function dataToTree2(arr) {
  arr.forEach(item1 => {
    // item 就是arr里的每一个元素，即对象
    item1.children = []
    // 从arr里找属于item1的孩子，并添加到children里
    arr.forEach(item2 => {
      if (item1.id === item2.pid) {
        // 如果item1的id===item2的pid，说明item2是item1的孩子
        item1.children.push(item2)
      }
    })
  })
  // 返回一级的父母
  return arr.filter(item => item.pid === 0)
}
